Часть 6. Структура приложения
— Часть 1. Введение
— Часть 2. Общая структура
— Часть 3. Первичные цепочки
— Часть 4. Администратор данных
— Часть 5. Администратор процессов
— Часть 6. Структура приложения
— Часть 7. Публикация в GCP
Постановка задачи
В Частях 3 и 4 мы показали как писать простые универсальные адиминки для основных объектов предприятия — данных и процессов. В этой части мы покажем структуру первого эликсир приложения PLM для управления предприятием совершающим аутсорсную деятельность. Требования к этому приложению были сформулированы в Части 1, а первичная структура самого предприятия и его ресурсов спратана в приложении ERP (которое должно публиковаться с приватном репозитории). Но для примера и во ися прозрачности бухгалтерского учета между самими программистами организационная структура предприятия заэкспожена публично полность, вместе с инвойсами и аггрегированными суммами по зарлплатным ведомостям, но без детализации по ЗП, зато с часовыми аллокациями рабочего временя (рейты анонимны, опционы насчитываются независимо от рейтов). Кроме опционов можно совершать инвестирование в проекты этой аутсорс компании поз залог самих же проектов компании, который акумулируется в соотвествующем субконто счёте после вычисления чистой нерапрделённой прибыли. Всего количество статей для распределения не много: 1) это резерв компании, 2) кредитованине других проектов, 3) опционы программистов и 4) исследования и разработка.
Конфигурация
Чтобы не писать каждый раз эту прелюдию для каждого приложения приведем на примере PLM проекта, который уже включает почти весь стек: N2O, KVS, BPE, а также другие N2O протоколы CHAT, NITRO. NITRO — является портом Nitrogen Web Framework написанный Расти Клопхаусом.
config/config.exs
Публикация
mix.exs
Страницы
PLM
PLM.Index
PLM.CashFlow
FIN
FIN.Index
LDAP
LDAP.Index
Роутер
Роутинг контроллеров страниц Nitrogen Web фреймворка. В этом роутере мы подключим все наши модули разработанные в Частях 3 и 4, т.е. администраторы данных и процессов.
ldap — LDAP.Index
form — FORM.Index
act — BPE.Actor
bpe — BPE.Index
kvs — KVS.Index
plm — PLM.Index
cashflow — PLM.CashFlow